//
//  main.m
//  NSArray排序
//
//  Created by wenjim on 17/10/24.
//  Copyright © 2017年 WenJim. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Person.h"

int main(int argc, const char * argv[]) {
    
    
    NSArray * arr = @[@10,@20,@5,@7,@15];
    NSLog(@"排序前：%@",arr);
    // 注意：想使用compare方法对数组中的元素进行排序，那么数组中的元素必须是Foundation框架中的对象，也就是说不能是自定义对象
    NSArray * arr2 = [arr sortedArrayUsingSelector:@selector(compare:)];
    NSLog(@"排序后: %@",arr2);
    
    Person * p = [[Person alloc] init];
    p.age = 10;
    
    Person * p1 = [[Person alloc] init];
    p1.age = 20;
    
    Person * p2 = [[Person alloc] init];
    p2.age = 30;
    
    Person * p3 = [[Person alloc] init];
    p3.age = 25;
    
    
    NSArray * array = @[p,p1,p2,p3];
    NSLog(@"排序前：%@",array);
    // 按照人的年龄进行排序
    // 不能使用compare: 方法对自定义对象进行排序
//    [array sortedArrayUsingSelector:@selector(compare:)];
    
    // 该方法默认会按照升序排序
    NSArray * array2 = [array sortedArrayWithOptions:NSSortStable usingComparator:^NSComparisonResult(Person *obj1,  Person  *obj2) {
        // 每次调用该block都会取出数组中的两个元素给我们
        // 二分
//        NSLog(@"obj1 = %@，obj2 = %@",obj1,obj2);
        
        
        return obj1.age < obj2.age;
    }];
    
    NSLog(@"排序后: %@",array2);
    
    
    return 0;
}
